-
Notifications
You must be signed in to change notification settings - Fork 228
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better arm editor debugging and allowing relative arm movement. #801
Conversation
…arm with offsets rather than absolute positions.
Relative movements have already been supported. You just have to change the coordinate space. See: https://ai2thor.allenai.org/manipulathor/documentation/#MoveArm-coordinatespace. Edit, weird. On some devices I'm getting an issue with the videos where they appear in weird positions covering the text. Looking into what's happening here. |
This pull request introduces 1 alert and fixes 1 when merging aea035b into 35d7922 - view on LGTM.com new alerts:
fixed alerts:
|
The de-sync between the wrist position and its out-of-range pos_rot_mainpulator was a working-as-intended decision, but if re-syncing them after the fact makes more sense, I'm all for it. |
@mattdeitke From my understanding, changing the coordinate frame gets us part of the way there but has a couple of deficiencies:
|
@Lucaweihs I think you can just use the
Also @elimvb do you remember why we decided it was working as intended? I recall an early bug where the pos rot manipulator was desynced causing the final position of the wrist to not end up where it was expected, like it was offset by a couple of delta time increments. Do you recall if this is related to that? |
I don't believe that works, here's an example:
How can I do this? If I use the |
Ah I see what you mean now. This sort of "move some amount relative to my current coordinate" does currently only work when in the wrist relative space, since it is the wrist that is moving so its coordinate space effectively moves with it. This sort of "move right of where I am currently by 0.1m" is currently required to be calculated on the user end when using other coordinate spaces. I'm not sure if this should be a whole new action as you have added or if it should just be another parameter included in the default arm movement actions. I could see something like specifying |
This pull request introduces 1 alert and fixes 1 when merging 6966a37 into 35d7922 - view on LGTM.com new alerts:
fixed alerts:
|
@winthos I don't recall an error like the one you're describing. The working-as-intended decision was because I wanted the pos_rot_manipulator's transform to work independently of the arm's range. So if the manipulator was put out of the agent's reach, the arm would hyperextend as much as it could to reach it. Thus, the wrist transform wouldn't be synced with manipulator in this case, but instead get as close as it could without breaking the arm. However, Luca made the valid point that this forces us to keep track of two pieces of end-joint metadata, which gets really confusing when you're doing follow-up transforms. So he added an extra step where, once the wrist gets as close as it can to the pos_rot_manipulator, the manipulator's work is complete for that step, and snaps over to the wrist's location so that they are both synced for the next transform. That seems like an intuitive compromise of logic to me, given our variables. |
@@ -20,6 +20,28 @@ public class ArmAgentController : PhysicsRemoteFPSAgentController { | |||
return arm; | |||
} | |||
|
|||
public void MoveArmRelative( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as mentioned in my review of #803, I'd like a quick comment summary for this action to make documentation upkeep easier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have added this documentation.
This pull request introduces 1 alert and fixes 1 when merging 511fedf into edc4c37 - view on LGTM.com new alerts:
fixed alerts:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me and in fact, I have been implementing this action on the python side. It would definitely make life easier.
Now if you hold shift while in the debug editor window you can move the arm with the arrow keys and s/w. I also added an arm action for allowing relative movements (it's quite cumbersome to always have to specify absolute coordinates).
One "fix" I added that I'd like comments on: I noticed that when moving the arm, the position of the arm can become desynched with the position of the
IK_pos_rot_manipulator
. This is quite counter intuitive to me (as there is some invisible state that changes how functions behave) so I now ensure that the position of theIK_pos_rot_manipulator
is always reset to the position of the arm after taking aMoveArm
or aMoveArmRelative
action.